package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 成绩对象 t_score
 * 
 * @author lcz
 * @date 2025-02-23
 */
@Data
@ApiModel("成绩对象")
public class Score extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 成绩ID */
    @ApiModelProperty("成绩ID")
    private Long id;

    /** 学生ID */
    @Excel(name = "学生ID")
    @ApiModelProperty("学生ID")
    private Long studentId;

    /** 学生姓名 */
    @Excel(name = "学生姓名")
    @ApiModelProperty("学生姓名")
    private String studentName;

    /** 项目类型 */
    @Excel(name = "项目类型")
    @ApiModelProperty("项目类型")
    private String projectType;

    /** 项目名称 */
    @Excel(name = "项目名称")
    @ApiModelProperty("项目名称")
    private String projectName;

    /** 测试场次ID */
    @Excel(name = "测试场次ID")
    @ApiModelProperty("测试场次ID")
    private Long testSessionId;

    /** 成绩 */
    @Excel(name = "成绩")
    @ApiModelProperty("成绩")
    private BigDecimal score;

    /** 等级ID */
    @Excel(name = "等级ID")
    @ApiModelProperty("等级ID")
    private Long gradeId;

    /** 等级名称 */
    @Excel(name = "等级名称")
    @ApiModelProperty("等级名称")
    private String gradeName;

    /** 单项得分 */
    @Excel(name = "单项得分")
    @ApiModelProperty("单项得分")
    private Long singleScore;

    /** 年级 */
    @Excel(name = "年级")
    @ApiModelProperty("年级")
    private String grade;

    /** 年级名称 */
    @Excel(name = "年级名称")
    @ApiModelProperty("年级名称")
    private String gradestr;

    /** 性别（0：女，1：男） */
    @Excel(name = "性别", readConverterExp = "1=男,2=女")
    @ApiModelProperty("性别（0：女，1：男）")
    private String gender;

    /** 身高（单位：米） */
    @Excel(name = "身高", readConverterExp = "单位：米")
    @ApiModelProperty("身高（单位：米）")
    private BigDecimal height;

    /** 体重（单位：千克） */
    @Excel(name = "体重", readConverterExp = "单位：千克")
    @ApiModelProperty("体重（单位：千克）")
    private BigDecimal weight;

    /** 班级ID */
//    @Excel(name = "班级ID")
    @ApiModelProperty("班级ID")
    private Long classId;

    /** 班级名称 */
    @Excel(name = "班级名称")
    @ApiModelProperty("班级名称")
    private String className;

    /** 学校ID */
//    @Excel(name = "学校ID")
    @ApiModelProperty("学校ID")
    private Long schoolId;

    /** 学校名称 */
    @Excel(name = "学校名称")
    @ApiModelProperty("学校名称")
    private String schoolName;

    /** 测验名称 */
    @Excel(name = "测验名称")
    @ApiModelProperty("测验名称")
    private String testSessionName;

    /**
     * 开始时间
     */
    @ApiModelProperty("开始时间")
    private String startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty("结束时间")
    private String endTime;

    /**
     * 开始时间
     */
    private LocalDateTime startLocalDateTime;

    /**
     * 结束时间
     */
    private LocalDateTime endLocalDateTime;

    private List<Long> classIdList = new ArrayList<>();

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("studentId", getStudentId())
            .append("studentName", getStudentName())
            .append("projectType", getProjectType())
            .append("projectName", getProjectName())
            .append("testSessionId", getTestSessionId())
            .append("score", getScore())
            .append("gradeId", getGradeId())
            .append("gradeName", getGradeName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("singleScore", getSingleScore())
            .append("gender", getGender())
            .append("height", getHeight())
            .append("weight", getWeight())
            .append("schoolName", getSchoolName())
            .append("className", getClassName())
            .append("schoolId", getSchoolId())
            .append("classId", getClassId())
            .append("testSessionName", getTestSessionName())
            .append("gradestr", getGradestr())
            .toString();
    }
}
